home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / math / ast53src.zip / EXTERN.H < prev    next >
C/C++ Source or Header  |  1996-09-29  |  24KB  |  646 lines

  1. /*
  2. ** Astrolog (Version 5.30) File: extern.h
  3. **
  4. ** IMPORTANT NOTICE: The graphics database and chart display routines
  5. ** used in this program are Copyright (C) 1991-1996 by Walter D. Pullen
  6. ** (Astara@msn.com, http://www.magitech.com/~cruiser1/astrolog.htm).
  7. ** Permission is granted to freely use and distribute these routines
  8. ** provided one doesn't sell, restrict, or profit from them in any way.
  9. ** Modification is allowed provided these notices remain with any
  10. ** altered or edited versions of the program.
  11. **
  12. ** The main planetary calculation routines used in this program have
  13. ** been Copyrighted and the core of this program is basically a
  14. ** conversion to C of the routines created by James Neely as listed in
  15. ** Michael Erlewine's 'Manual of Computer Programming for Astrologers',
  16. ** available from Matrix Software. The copyright gives us permission to
  17. ** use the routines for personal use but not to sell them or profit from
  18. ** them in any way.
  19. **
  20. ** The PostScript code within the core graphics routines are programmed
  21. ** and Copyright (C) 1992-1993 by Brian D. Willoughby
  22. ** (brianw@sounds.wa.com). Conditions are identical to those above.
  23. **
  24. ** The extended accurate ephemeris databases and formulas are from the
  25. ** calculation routines in the program "Placalc" and are programmed and
  26. ** Copyright (C) 1989,1991,1993 by Astrodienst AG and Alois Treindl
  27. ** (alois@azur.ch). The use of that source code is subject to
  28. ** regulations made by Astrodienst Zurich, and the code is not in the
  29. ** public domain. This copyright notice must not be changed or removed
  30. ** by any user of this program.
  31. **
  32. ** Initial programming 8/28,30, 9/10,13,16,20,23, 10/3,6,7, 11/7,10,21/1991.
  33. ** X Window graphics initially programmed 10/23-29/1991.
  34. ** PostScript graphics initially programmed 11/29-30/1992.
  35. ** Last code change made 9/22/1996.
  36. */
  37.  
  38. /*
  39. ******************************************************************************
  40. ** Function Declarations.
  41. ******************************************************************************
  42. */
  43.  
  44. #ifdef PROTO
  45. #define P(t) t
  46. #else
  47. #define P(t) ()
  48. #endif
  49.  
  50. /* From astrolog.c */
  51.  
  52. extern void InitColors P((void));
  53. extern void Action P((void));
  54. extern void InitVariables P((void));
  55. extern bool FProcessCommandLine P((char *));
  56. extern int NParseCommandLine P((char *, char **));
  57. extern int NPromptSwitches P((char *, char *[MAXSWITCHES]));
  58. extern int NProcessSwitchesRare P((int, char **, int, bool, bool, bool));
  59. extern bool FProcessSwitches P((int, char **));
  60.  
  61.  
  62. /* From data.c & data2.c */
  63.  
  64. #define MM ciCore.mon
  65. #define DD ciCore.day
  66. #define YY ciCore.yea
  67. #define TT ciCore.tim
  68. #define ZZ ciCore.zon
  69. #define SS ciCore.dst
  70. #define OO ciCore.lon
  71. #define AA ciCore.lat
  72.  
  73. #define Mon ciMain.mon
  74. #define Day ciMain.day
  75. #define Yea ciMain.yea
  76. #define Tim ciMain.tim
  77. #define Zon ciMain.zon
  78. #define Dst ciMain.dst
  79. #define Lon ciMain.lon
  80. #define Lat ciMain.lat
  81.  
  82. #define MonT ciTran.mon
  83. #define DayT ciTran.day
  84. #define YeaT ciTran.yea
  85. #define TimT ciTran.tim
  86. #define ZonT ciTran.zon
  87. #define DstT ciTran.dst
  88. #define LonT ciTran.lon
  89. #define LatT ciTran.lat
  90.  
  91. #define planet    cp0.obj
  92. #define planetalt cp0.alt
  93. #define ret       cp0.dir
  94. #define chouse    cp0.cusp
  95. #define inhouse   cp0.house
  96.  
  97. #define ignorea(a) (rAspOrb[a] <= 0.0)
  98.  
  99. extern US NPTR us;
  100. extern IS NPTR is;
  101. extern CI ciCore, ciMain, ciTwin, ciThre, ciFour, ciTran, ciSave;
  102. extern CP cp0, cp1, cp2;
  103.  
  104. extern real spacex[oNorm+1], spacey[oNorm+1], spacez[oNorm+1], force[objMax];
  105. extern GridInfo FPTR *grid;
  106. extern int starname[cStar+1], kObjA[objMax];
  107.  
  108. extern byte ignore[objMax], ignore2[objMax], ignorez[4], pluszone[cSector+1];
  109. extern real rAspAngle[cAspect+1], rAspOrb[cAspect+1], rObjOrb[oNorm+1],
  110.   rObjAdd[oNorm+1];
  111. extern CONST int rules[cSign+1];
  112. extern int ruler1[oNorm+1], ruler2[oNorm+1], exalt[oNorm+1],
  113.   kMainA[9], kRainbowA[8], kElemA[4], kAspA[cAspect+1];
  114. extern real rObjInf[oNorm+3], rHouseInf[cSign+3], rAspInf[cAspect+1],
  115.   rTransitInf[oNorm+3];
  116.  
  117. extern CONST char *szAppName, *szSignName[cSign+1], *szSignAbbrev[cSign+1],
  118.   *szSignEnglish[cSign+1], *szHouseTradition[cSign+1], *szSystem[cSystem],
  119.   *szAspectName[cAspect+1], *szAspectGlyph[cAspect+1],
  120.   *szAspectConfig[cAspConfig+1], *szElem[4], *szMode[3], *szMonth[cSign+1],
  121.   *szDay[cWeek], *szZon[cZone], *szDir[4], *szSuffix[cSign+1];
  122. extern CONST real rZon[cZone];
  123. extern char *szAspectAbbrev[cAspect+1];
  124. extern CONST char *szObjName[objMax], *szCnstlName[cCnstl+1],
  125.   *szCnstlAbbrev[cCnstl+1], *szCnstlMeaning[cCnstl+1],
  126.   *szCnstlGenitive[cCnstl+1];
  127. extern CONST real rStarBright[cStar+1], rStarData[cStar*6];
  128. extern char *szMindPart[oNorm+1], *szDesc[cSign+1], *szDesire[cSign+1],
  129.   *szLifeArea[cSign+1], *szInteract[cAspectInt+1], *szTherefore[cAspectInt+1],
  130.   *szModify[3][cAspectInt];
  131.  
  132. extern CONST real rObjDist[oVes+1], rObjYear[oVes+1], rObjDiam[oVes+1],
  133.   rObjDay[oPlu+1], rObjMass[oPlu+1], rObjAxis[oPlu+1];
  134. extern CONST byte cSatellite[oPlu+1];
  135. extern CONST AI ai[cPart];
  136.  
  137. extern CONST byte rErrorCount[oPlu-oJup+1];
  138. extern CONST byte rErrorOffset[oPlu-oJup+1];
  139. extern CONST real rErrorData[72+51+42*3];
  140. extern OE rgoe[oVes-1+cUran];
  141. extern char *szMacro[48];
  142. extern CONST char *szColor[cColor];
  143.  
  144.  
  145. /* From general.c */
  146.  
  147. #define PrintAltitude(deg) PrintSz(SzAltitude(deg))
  148. #define ErrorValR(sz, r) ErrorValN(sz, (int)r)
  149.  
  150. extern void SwapR P((real *, real *));
  151. extern int CchSz P((CONST char *));
  152. extern int NCompareSz P((CONST char *, CONST char *));
  153. extern void ClearB P((lpbyte, int));
  154. extern void CopyRgb P((byte *, byte *, int));
  155. extern real RSgn P((real));
  156. extern real Angle P((real, real));
  157. extern real Mod P((real));
  158. extern real ModRad P((real));
  159. extern long Dvd P((long, long));
  160. extern int Mod12 P((int));
  161. extern real DecToDeg P((real));
  162. extern real DegToDec P((real));
  163. extern real MinDistance P((real, real));
  164. extern real MinDifference P((real, real));
  165. extern real Midpoint P((real, real));
  166. extern char Dignify P((int, int));
  167. extern int DayInMonth P((int, int));
  168. extern int DaysInMonth P((int, int));
  169. extern int DayOfWeek P((int, int, int));
  170. extern int AddDay P((int, int, int, int));
  171. extern real GetOrb P((int, int, int));
  172. extern void Terminate P((int));
  173. extern void PrintSz P((CONST char *));
  174. extern void PrintCh P((char));
  175. extern void PrintSzScreen P((char *));
  176. extern void PrintNotice P((char *));
  177. extern void PrintWarning P((char *));
  178. extern void PrintError P((char *));
  179. extern void ErrorArgc P((char *));
  180. extern void ErrorValN P((char *, int));
  181. extern void ErrorArgv P((char *));
  182. extern void ErrorSwitch P((char *));
  183. extern void ErrorEphem P((char *, long));
  184. extern void PrintTab P((char, int));
  185. extern void AnsiColor P((int));
  186. extern void PrintZodiac P((real));
  187. extern char *SzZodiac P((real));
  188. extern char *SzAltitude P((real));
  189. extern char *SzDegree P((real));
  190. extern char *SzDate P((int, int, int, int));
  191. extern char *SzTime P((int, int));
  192. extern char *SzTim P((real));
  193. extern char *SzZone P((real));
  194. extern char *SzLocation P((real, real));
  195. extern void GetTimeNow P((int *, int *, int *, real *, real));
  196. extern int NFromAltN P((int));
  197. extern char *ProcessProgname P((char *));
  198. extern char *SzPersist P((char *));
  199. extern lpbyte PAllocate P((long, bool, char *));
  200.  
  201.  
  202. /* From io.c */
  203.  
  204. extern FILE *FileOpen P((char *, int));
  205. extern bool FProcessSwitchFile P((char *, FILE *));
  206. extern bool FOutputData P((void));
  207. extern int NParseSz P((char *, int));
  208. extern real RParseSz P((char *, int));
  209. extern void InputString P((char *, char *));
  210. extern int NInputRange P((char *, int, int, int));
  211. extern real RInputRange P((char *, real, real, int));
  212. extern bool FInputData P((char *));
  213.  
  214.  
  215. /* From calc.c */
  216.  
  217. #define RBiorhythm(day, rate) (RSin(((day)/(rate))*rPi2)*100.0)
  218.  
  219. extern int HousePlaceIn P((real));
  220. extern void ComputeInHouses P((void));
  221. extern void HouseAlcabitius P((void));
  222. extern void HouseEqualMidheaven P((void));
  223. extern void HousePorphyryNeo P((void));
  224. extern void HouseWhole P((void));
  225. extern void HouseNull P((void));
  226. extern void ComputeHouses P((int));
  227. extern void ComputeStars P((real));
  228. extern real Decan P((real));
  229. extern void SphToRec P((real, real, real, real *, real *, real *));
  230. extern void ComputePlacalc P((real));
  231. extern real CastChart P((bool));
  232. extern void CastSectors P((void));
  233. extern bool FEnsureGrid P((void));
  234. extern bool FAcceptAspect P((int, int, int));
  235. extern void GetAspect P((real *, real *, real *, real *, int, int));
  236. extern void GetParallel P((real *, real *, real *, real *, int, int));
  237. extern bool FCreateGrid P((bool));
  238. extern bool FCreateGridRelation P((bool));
  239. extern void CreateElemTable P((ET *));
  240.  
  241.  
  242. /* From matrix.c */
  243.  
  244. #define EclToEqu(Z, L) CoorXform(Z, L, RFromD(rAxis))
  245. #define EquToEcl(Z, L) CoorXform(Z, L, RFromD(-rAxis))
  246. #define EquToLocal(Z, L, T) CoorXform(Z, L, T)
  247. #define JulianDayFromTime(t) ((t)*36525.0+2415020.0)
  248. #define IoeFromObj(obj) \
  249.   (obj < oMoo ? 0 : (obj <= cPlanet ? obj-2 : obj-uranLo+cPlanet-1))
  250. #define Tropical(deg) (deg - is.rSid + us.rZodiacOffset)
  251.  
  252. extern real MC, Asc, RA, OB;
  253.  
  254. extern long MdyToJulian P((int, int, int));
  255. extern real MdytszToJulian P((int, int, int, real, real, real));
  256. extern void JulianToMdy P((real, int *, int *, int *));
  257. extern real ProcessInput P((bool));
  258. extern void PolToRec P((real, real, real *, real *));
  259. extern void RecToPol P((real, real, real *, real *));
  260. extern real RecToSph P((real, real, real));
  261. extern void CoorXform P((real *, real *, real));
  262. extern void ComputeVariables P((real *));
  263. extern real CuspMidheaven P((void));
  264. extern real CuspAscendant P((void));
  265. extern real CuspEastPoint P((void));
  266. extern real CuspPlacidus P((real, real, bool));
  267. extern void HousePlacidus P((void));
  268. extern void HouseKoch P((void));
  269. extern void HouseEqual P((void));
  270. extern void HouseCampanus P((void));
  271. extern void HouseMeridian P((void));
  272. extern void HouseRegiomontanus P((void));
  273. extern void HousePorphyry P((void));
  274. extern void HouseMorinus P((void));
  275. extern real CuspTopocentric P((real));
  276. extern void HouseTopocentric P((void));
  277. extern real ReadThree P((real, real, real));
  278. extern void RecToSph2 P((real, real, real, real *, real *, real *));
  279. extern void ErrorCorrect P((int, real *, real *, real *));
  280. extern void ProcessPlanet P((int, real));
  281. extern void ComputePlanets P((void));
  282. extern void ComputeLunar P((real *, real *, real *, real *));
  283.  
  284.  
  285. #ifdef PLACALC
  286. /* From placalc.c & placalc2.c */
  287.  
  288. extern bool FPlacalcPlanet
  289.   P((int, double, int, real *, real *, real *, real *));
  290. extern double julday P((int, int, int, double, int));
  291. extern void revjul P((double, int, int *, int *, int *, double *));
  292. #endif
  293.  
  294.  
  295. /* From charts0.c */
  296.  
  297. extern void PrintW P((char *, int));
  298. extern void DisplayCredits P((void));
  299. extern void PrintS P((char *));
  300. extern void DisplaySwitches P((void));
  301. extern void DisplaySwitchesRare P((void));
  302. extern void PrintObjects P((void));
  303. extern void PrintAspects P((void));
  304. extern void PrintSigns P((void));
  305. #ifdef CONSTEL
  306. extern char *GetSzGenitive P((char *, char *));
  307. extern void GetSzConstel P((char *, int));
  308. extern void PrintConstellations P((void));
  309. #endif
  310. extern void PrintOrbit P((void));
  311. extern int NCompareSzPart P((int, int));
  312. extern void DisplayArabic P((void));
  313. #ifdef GRAPH
  314. extern void DisplayKeysX P((void));
  315. extern void DisplaySwitchesX P((void));
  316. #ifdef WIN
  317. extern void DisplaySwitchesW P((void));
  318. #endif
  319. #endif /* GRAPH */
  320. extern bool FPrintTables P((void));
  321.  
  322.  
  323. /* From charts1.c */
  324.  
  325. extern void PrintHeader P((void));
  326. extern void ChartListing P((void));
  327. extern void ChartGrid P((void));
  328. extern void PrintGrand P((char, int, int, int, int));
  329. extern void DisplayGrands P((void));
  330. extern void PrintHouse P((int, int));
  331. extern void PrintWheelCenter P((int));
  332. extern void PrintWheelSlot P((int));
  333. extern void ChartWheel P((void));
  334. extern void PrintAspectSummary P((int *, int *, int, real));
  335. extern void ChartAspect P((void));
  336. extern void PrintMidpointSummary P((int *, int, long));
  337. extern void ChartMidpoint P((void));
  338. extern void ChartHorizon P((void));
  339. extern void ChartOrbit P((void));
  340. extern void ChartSector P((void));
  341. extern void ChartAstroGraph P((void));
  342. extern void PrintChart P((bool));
  343.  
  344.  
  345. /* From charts2.c */
  346.  
  347. extern void ChartGridRelation P((void));
  348. extern void ChartAspectRelation P((void));
  349. extern void ChartMidpointRelation P((void));
  350. extern void CastRelation P((void));
  351. extern void PrintInDay P((int, int, int));
  352. extern void PrintAspect P((int, int, int, int, int, int, int, char));
  353. extern void ChartInDayInfluence P((void));
  354. extern void ChartTransitInfluence P((bool));
  355. extern void EclToHorizon P((real *, real *, real, real, real, real, real));
  356. extern void ChartCalendarMonth P((void));
  357. extern void ChartCalendarYear P((void));
  358. extern void DisplayRelation P((void));
  359.  
  360.  
  361. /* From charts3.c */
  362.  
  363. extern void ChartInDaySearch P((bool));
  364. extern void ChartTransitSearch P((bool));
  365. extern void ChartInDayHorizon P((void));
  366. extern void ChartEphemeris P((void));
  367.  
  368.  
  369. /* From intrpret.c */
  370.  
  371. #ifdef INTERPRET
  372. extern void FieldWord P((char *));
  373. extern void InterpretGeneral P((void));
  374. extern void InterpretAspectGeneral P((void));
  375. extern void InterpretLocation P((void));
  376. extern void InterpretAspect P((int, int));
  377. extern void InterpretGrid P((void));
  378. extern void InterpretMidpoint P((int, int));
  379. extern void InterpretInDay P((int, int, int));
  380. extern void InterpretTransit P((int, int, int));
  381. extern void InterpretSynastry P((void));
  382. extern void InterpretAspectRelation P((int, int));
  383. extern void InterpretGridRelation P((void));
  384. extern void InterpretMidpointRelation P((int, int));
  385. #endif
  386. extern void SortRank P((real *, int *, int));
  387. extern void ChartInfluence P((void));
  388.  
  389.  
  390. #ifdef GRAPH
  391. /* From xdata.c */
  392.  
  393. extern GS NPTR gs;
  394. extern GI NPTR gi;
  395.  
  396. #ifdef X11
  397. extern XSizeHints hint;
  398. extern char xkey[];
  399. extern char *szColorX[cColor];
  400. extern KV rgbind[cColor];
  401. extern KV fg, bg;
  402. #endif
  403. #ifdef WIN
  404. extern int ikPalette[cColor];
  405. #endif
  406.  
  407. extern CONST KV rgb[cColor], rgbbmp[cColor];
  408. extern KI kMainB[9], kRainbowB[8], kElemB[4], kAspB[cAspect+1], kObjB[objMax];
  409. extern CONST char szObjectFont[oNorm+2], szAspectFont[cAspect+1],
  410.   *szDrawSign[cSign+2], *szDrawObject[oNorm+5], *szDrawObject2[oNorm+5],
  411.   *szDrawHouse[cSign+1], *szDrawAspect[cAspect+3], *szDrawAspect2[cAspect+3],
  412.   *szDrawCh[128-32+1], *szWorldData[62*3], *szDrawConstel[cCnstl+1];
  413.  
  414.  
  415. /* From xgeneral.c */
  416.  
  417. #define BBmGet(B, X, Y) ((B)[(long)(Y)*(long)(gi.cbBmpRow) + ((X) >> 1)])
  418. #define FBmGet(B, X, Y) (BBmGet(B, X, Y) >> (((X)&1^1) << 2) & 15)
  419. #define BmSet(B, X, Y, O) BBmGet(B, X, Y) = BBmGet(B, X, Y) & \
  420.   15 << (((X)&1) << 2) | (O) << (((X)&1^1) << 2)
  421.  
  422. #define PutByte(A) putc((byte) (A), file)
  423. #define PutWord(A) PutByte(BLo(A)); PutByte(BHi(A))
  424. #define PutLong(A) PutWord(WLo(A)); PutWord(WHi(A))
  425.  
  426. #define DrawEdge(X1, Y1, X2, Y2) \
  427.   DrawBox(X1, Y1, X2, Y2, gi.nScaleT, gi.nScaleT)
  428. #define DrawEdgeAll() DrawEdge(0, 0, gs.xWin-1, gs.yWin-1)
  429. #define DrawLine(X1, Y1, X2, Y2) DrawDash(X1, Y1, X2, Y2, 0)
  430. #define DrawCircle(X, Y, RX, RY) \
  431.   DrawEllipse((X)-(RX), (Y)-(RY), (X)+(RX), (Y)+(RY))
  432.  
  433. extern void DrawColor P((KI));
  434. extern void DrawPoint P((int, int));
  435. extern void DrawSpot P((int, int));
  436. extern void DrawBlock P((int, int, int, int));
  437. extern void DrawBox P((int, int, int, int, int, int));
  438. extern void DrawClearScreen P((void));
  439. extern void DrawDash P((int, int, int, int, int));
  440. extern void DrawWrap P((int, int, int, int, int, int));
  441. extern void ClipLesser P((int *, int *, int *, int *, int));
  442. extern void ClipGreater P((int *, int *, int *, int *, int));
  443. extern void DrawClip P((int, int, int, int, int, int, int, int, int));
  444. extern void DrawEllipse P((int, int, int, int));
  445. extern void DrawSz P((CONST char *, int, int, int));
  446. extern void DrawSign P((int, int, int));
  447. extern void DrawHouse P((int, int, int));
  448. extern void DrawObject P((int, int, int));
  449. extern void DrawAspect P((int, int, int));
  450. extern int NFromPch P((CONST char **));
  451. extern void DrawTurtle P((CONST char *, int, int));
  452.  
  453.  
  454. /* From xdevice.c */
  455.  
  456. #ifdef META
  457. /* Macros to output the various metafile commands used. */
  458.  
  459. #define MetaRecord(S, R) MetaLong((long)(S)); MetaWord(R)
  460. #define MetaSelectObject(O) MetaRecord(4, 0x12D); MetaWord(O)
  461. #define MetaDeleteObject(O) MetaRecord(4, 0x1F0); MetaWord(O)
  462. #define MetaSaveDc() MetaRecord(3, 0x01E)
  463. #define MetaRestoreDc() MetaRecord(4, 0x127); MetaWord((word)-1)
  464. #define MetaWindowOrg(X, Y) MetaRecord(5, 0x20B); MetaWord(Y); MetaWord(X)
  465. #define MetaWindowExt(X, Y) MetaRecord(5, 0x20C); MetaWord(Y); MetaWord(X)
  466. #define MetaCreatePen(S, W, C) MetaRecord(8, 0x2FA); MetaWord(S); \
  467.   MetaWord(W); MetaWord(W); MetaLong(C)
  468. #define MetaCreateBrush(S, C) MetaRecord(7, 0x2FC); \
  469.   MetaWord(S); MetaLong(C); MetaWord(0 /* Not used */);
  470. #define MetaCreateFont(S, X, Y, C) MetaRecord(12+(S), 0x2FB); MetaWord(Y); \
  471.   MetaWord(X); MetaWord(0 /* Angle */); MetaWord(0 /* Not used */); \
  472.   MetaWord(400 /* Normal Weight */); MetaWord(0 /* Italic, Underline */); \
  473.   MetaWord(WFromBB(0 /* Strikeout */, C)); \
  474.   MetaWord(WFromBB(4 /* TrueType */, 0 /* Clip */))
  475. #define MetaBkMode(M) MetaRecord(4, 0x102); MetaWord(M)
  476. #define MetaTextAlign(A) MetaRecord(4, 0x12E); MetaWord(A)
  477. #define MetaTextColor(C) MetaRecord(5, 0x209); MetaLong(C);
  478. #define MetaTextOut(X, Y, S) MetaRecord(7+((S)+1)/2, 0xA32); \
  479.   MetaWord(Y); MetaWord(X); MetaWord(S); MetaWord(0 /* ETO */)
  480. #define MetaRectangle(X1, Y1, X2, Y2) MetaRecord(7, 0x41B); \
  481.   MetaWord(Y2); MetaWord(X2); MetaWord(Y1); MetaWord(X1)
  482. #define MetaEllipse(X1, Y1, X2, Y2) MetaRecord(7, 0x418); \
  483.   MetaWord(Y2); MetaWord(X2); MetaWord(Y1); MetaWord(X1)
  484. #define MetaEscape(S) MetaRecord((S), 0x626); \
  485.   MetaWord(15 /* MFCOMMENT */); MetaWord(((S)-5)*2 /* Bytes in comment */);
  486. #endif /* META */
  487.  
  488. extern void WriteXBitmap P((FILE *, char *, char));
  489. extern void WriteAscii P((FILE *));
  490. extern void WriteBmp P((FILE *));
  491. extern void BeginFileX P((void));
  492. extern void EndFileX P((void));
  493. extern void PsStrokeForce P((void));
  494. extern void PsStroke P((int));
  495. extern void PsLineCap P((bool));
  496. extern void PsDash P((int));
  497. extern void PsLineWidth P((int));
  498. extern void PsFont P((int));
  499. extern void PsBegin P((void));
  500. extern void PsEnd P((void));
  501. extern void MetaWord P((word));
  502. extern void MetaLong P((long));
  503. extern void MetaSelect P((void));
  504. extern void MetaInit P((void));
  505. extern void WriteMeta P((FILE *));
  506. extern int MouseInit P((int, int));
  507. extern void MouseShow P((bool));
  508. extern bool MouseStatus P((int *, int *, int *));
  509.  
  510.  
  511. /* From xcharts0.c */
  512.  
  513. extern int DrawPrint P((char *, int, int));
  514. extern void DrawInfo P((void));
  515. extern void DrawWheel
  516.   P((real *, real *, int, int, real, real, real, real,real,real,real,real));
  517. extern void DrawSymbolRing
  518.   P((real *, real *, real *, int, int, real, real, real,real,real,real));
  519. extern bool FReadWorldData P((char FPTR **, char FPTR **, char FPTR **));
  520. extern bool FGlobeCalc P((real, real, int *, int *, int, int, int, int, int));
  521. extern void DrawLeyLine P((real, real, real, real));
  522. extern void DrawLeyLines P((int));
  523. extern void DrawMap P((bool, bool, int));
  524. extern void DrawChartX P((void));
  525.  
  526.  
  527. /* From xcharts1.c */
  528.  
  529. extern void XChartWheel P((void));
  530. extern void XChartAstroGraph P((void));
  531. extern void XChartGrid P((void));
  532. extern void XChartHorizon P((void));
  533. extern void XChartHorizonSky P((void));
  534. extern void XChartOrbit P((void));
  535. extern void XChartSector P((void));
  536. extern void DrawArrow P((int, int, int, int));
  537. extern void XChartDispositor P((void));
  538. extern void XChartCalendar P((void));
  539.  
  540.  
  541. /* From xcharts2.c */
  542.  
  543. extern bool FProper P((int));
  544. extern void FillSymbolRing P((real *, real));
  545. extern void FillSymbolLine P((real *));
  546. extern real HousePlaceInX P((real));
  547. extern void XChartWheelRelation P((void));
  548. extern void XChartWheelThreeFour P((void));
  549. extern void XChartGridRelation P((void));
  550. extern void XChartEphemeris P((void));
  551. extern void XChartBiorhythm P((void));
  552.  
  553.  
  554. /* From xscreen.c */
  555.  
  556. extern void InitColorsX P((void));
  557. #ifdef ISG
  558. extern void BeginX P((void));
  559. extern void AddTime P((int, int));
  560. extern void Animate P((int, int));
  561. extern void CommandLineX P((void));
  562. extern void SquareX P((int *, int *, int));
  563. extern void InteractX P((void));
  564. extern void EndX P((void));
  565. #endif
  566. extern int NProcessSwitchesX P((int, char **, int, bool, bool, bool));
  567. extern int NProcessSwitchesRareX P((int, char **, int));
  568. extern bool FActionX P((void));
  569. #endif /* GRAPH */
  570.  
  571.  
  572. #ifdef WIN
  573. /* From wdriver.c & wdialog.c */
  574.  
  575. extern WI NPTR wi;
  576. extern OPENFILENAME ofn;
  577. extern PRINTDLG prd;
  578. extern char szFileName[cchSzMaxFile], szFileTitle[cchSzMaxFile], *szFileTemp;
  579.  
  580. #define TextClearScreen() PatBlt(wi.hdc, 0, 0, wi.xClient, wi.yClient, \
  581.   us.fAnsiColor || !gs.fInverse ? BLACKNESS : WHITENESS);
  582. #define CheckMenu(cmd, f) \
  583.   CheckMenuItem(wi.hmenu, (_int)cmd, f ? MF_CHECKED : MF_UNCHECKED);
  584. #define WiCheckMenu(cmd, f) CheckMenu(cmd, f); wi.fMenu = fTrue
  585. #define WiDoDialog(pfn, dlg) \
  586.   dlgproc = (DLGPROC)MakeProcInstance(pfn, wi.hinst); \
  587.   DialogBox(wi.hinst, MAKEINTRESOURCE(dlg), wi.hwnd, dlgproc); \
  588.   FreeProcInstance((FARPROC)dlgproc)
  589.  
  590. #define SetCheck(id, f) CheckDlgButton(hdlg, id, f)
  591. #define SetRadio(id, idLo, idHi) CheckRadioButton(hdlg, idLo, idHi, id)
  592. #define SetEdit(id, sz) SetDlgItemText(hdlg, id, (LPCSTR)sz)
  593. #define SetEditN(id, n) SetDlgItemInt(hdlg, id, n, fTrue)
  594. #define SetCombo(id, sz) \
  595.   SendDlgItemMessage(hdlg, id, CB_ADDSTRING, 0, (LPARAM)(LPCSTR)sz)
  596. #define ClearCombo(id) SendDlgItemMessage(hdlg, id, CB_RESETCONTENT, 0, 0);
  597. #define GetCheck(id) IsDlgButtonChecked(hdlg, id)
  598. #define GetEdit(id, sz) GetDlgItemText(hdlg, id, sz, cchSzDef)
  599. #define GetEditN(id) GetDlgItemInt(hdlg, id, NULL, fTrue)
  600. #define EnsureN(n, f, sz) if (!(f)) { ErrorEnsure(n, sz); return fTrue; }
  601. #define EnsureR(r, f, sz) EnsureN((int)r, f, sz)
  602.  
  603. extern LONG API WndProc P((HWND, WORD, WORD, LONG));
  604. extern int NProcessSwitchesW P((int, char **, int, bool, bool, bool));
  605. extern void ResizeWindowToChart P((void));
  606. extern WORD WCmdFromRc P((int));
  607. extern void SetRel P((int));
  608. extern void ProcessState P((void));
  609. extern int NWmCommand P((WORD));
  610. extern void API RedoMenu P((void));
  611. extern bool API FRedraw P((void));
  612.  
  613. extern void SetEditSz(HWND, int, char *);
  614. extern void SetEditR(HWND, int, real, int);
  615. extern void SetEditMDYT(HWND, int, int, int, int, int, int, int, real);
  616. extern void SetEditSZOA(HWND, int, int, int, int, real, real, real, real);
  617. extern void SetEditColor(HWND, int, KI);
  618. extern real GetEditR(HWND, int);
  619. extern void ErrorEnsure(int, char *);
  620. extern bool FOutputSettings P((void));
  621. extern bool API DlgOpenChart P((void));
  622. extern bool API DlgSaveChart P((void));
  623. extern bool API DlgPrint P((void));
  624. extern bool API DlgAbortProc P((HDC, int));
  625. extern bool API DlgAbort P((HWND, _int, WORD, LONG));
  626. extern bool API DlgCommand P((HWND, _int, WORD, LONG));
  627. extern bool API DlgColor P((HWND, _int, WORD, LONG));
  628. extern bool API DlgInfo P((HWND, _int, WORD, LONG));
  629. extern bool API DlgDefault P((HWND, _int, WORD, LONG));
  630. extern bool API DlgInfoAll P((HWND, _int, WORD, LONG));
  631. extern bool API DlgAspect P((HWND, _int, WORD, LONG));
  632. extern bool API DlgObject P((HWND, _int, WORD, LONG));
  633. extern bool API DlgObject2 P((HWND, _int, WORD, LONG));
  634. extern bool API DlgRestrict P((HWND, _int, WORD, LONG));
  635. extern bool API DlgStar P((HWND, _int, WORD, LONG));
  636. extern bool API DlgSetting P((HWND, _int, WORD, LONG));
  637. extern bool API DlgObscure P((HWND, _int, WORD, LONG));
  638. extern bool API DlgTransit P((HWND, _int, WORD, LONG));
  639. extern bool API DlgProgress P((HWND, _int, WORD, LONG));
  640. extern bool API DlgChart P((HWND, _int, WORD, LONG));
  641. extern bool API DlgGraphics P((HWND, _int, WORD, LONG));
  642. extern bool API DlgAbout P((HWND, _int, WORD, LONG));
  643. #endif /* WIN */
  644.  
  645. /* extern.h */
  646.